1. Introduction to Agent-based
System
Bambang Purnomosidi D. P.
http://bpdp.name
This material was taken from my website. Have a look here:
http://bpdp.name/content:book:agent-based-
system:introduction:start
2. Agenda
● Definition and related concepts
● Agent and Regular Software
● Application of Agent-based System
● Organization related to Agent-based
System.
● Agent Development Kit
3. Agenda 1: Definition and
Related Concepts
● An agent is not necessarily related to
computer system.
● Here we will discuss only about
(intelligent) software agent
4. Agent Definition
● Agent is taken from the latin word agere,
means to do.
● Agent in computer science and industry
basically almost has the same
understanding with definition in the real
world, only in computer science it
refers to a software entity while in the
real world it refers to person,
instrument, something, or any other
object
5. Agent Definition (cont.)
● Merriam-Webster online dictionary:
– One who is authorized to act for or in the
place of another.
● An agent in computer science refers to a
software or other computational
entities which has intelligence
characteristics and can decide and act
based on its intelligency and other
information taken from its environment.
An agent usually acts on behalf of
computer user.
6. Agent Definition (cont.)
● An agent is anything that can be viewed as perceiving
its environment through sensors and acting upon
that environment through actuators (Russel and
Norvig, 2010).
● An agent is something that acts in an environment,
interact with the environment with a body, receive
information through their sensors, and act in the
world through their actuators, also called effectors
(David Poole and Alan Mackworth, 2010)
● An agent is a computer system that is situated in some
environment, and that is capable of autonomous
action in this environment in order to meet its design
objectives (M. Wooldridge and N.R. Jennings, 1995).
7. Agent and Artificial Intelligence
● According to Mc Carthy (1956, rewriten
again in 2007), AI is ”the science and
engineering of making intelligent
machines”.
● Agent is central in AI for obvious reasons.
AI does always try to make thing which
is intelligent. This thing is not necessary
a machine and it can be considered as
agent. Therefore we can conclude that
agent is the ultimate objective of AI.
8. Intelligent Agent
● An intelligent agent is an agent with
intelligent features. A system consists
of hardware and software, has
intelligent features, is the one that
usually called intelligent agent. This is
the closest in meaning with agent
defined by AI. If the agent is a software
then it is called intelligent software
agent.
9. Software Agent
● A software agent is a software who will
act on behalf of other party (in this
case, the party is computer user). To
act on behalf of other party, a software
agent needs to be intelligent enough,
so the term ”software agent” can also
be used interchangeably with
”intelligent software agent” although
people often called it just ”software
agent”.
10. Autonomous Agent
● An agent can also be seen from one of its
characteristics: autonomy. An agent is capable
to reveice comamand from computer users (i.e.
human who want to finish some task), and can
act intelligently to do those task(s) which has
been delegated by computer users. During his
activities, an agent basically can interact with
the environment, learn and then using its
knowledge to do its task without much
interaction and command from computer users.
This shows us that an agent has some degree of
autonomy. An intelligent agent which has
autonomy is called autonomous agent.
11. Mobile Agent
● A mobile agent basically also a software
agent. It has the same features and
characteristics as software agent with
an added capability: ”mobility”. A
mobile agent is software, together with
data, which can be executed in a
certain host to do a task and then move
to another host to continue its
execution. This mobility makes this kind
of software agent is called mobile
agent.
12. Multi-agent System /
Distributed Artificial Intelligence
● Some problems maybe too hard to be
solved by an agent alone. If an agent
can not solve a problem alone, it will
needs more agents to interact,
commnicate, and cooperate to solve
that problem. This situation is known as
multi-agent system (MAS).
15. Agenda 2: Agent and Regular
Software (Non-agent Software)
● Characteristics of software agent:
– Franklin and Graesser, 1996
16. Agent and Regular Software
(Non-agent Software)
● Jenning and Wooldridge, 1995:
– Autonomy: agents should be able to perform the majority of
their problem solving tasks without the direct intervention of
humans or other agents, and they should have a degree of
control over their own actions and their own internal state.
– Social ability: agents should be able to interact, when they
deem appropriate, with other software agents and humans in
order to complete their own problem solving and to help others
with their activities where appropriate.
– Responsiveness: agents should perceive their environment
(which may be the physical world, a user, a collection of
agents, the INTERNET, etc.) and respond in a timely fashion to
changes which occur in it.
– Proactiveness: agents should not simply act in response to their
environment, they should be able to exhibit opportunistic, goal-
directed behaviour and take the initiative where appropriate.
–
17. Agenda 3: Application of Agent-
based System
● Wooldridge (2002):
– Distributed systems: an agent become
a part of distributed system, as a
processing node.
– Personal software assistants: an agent
play the role of proactive assistants to
users working with some application.
18. Application of Agent-based
System
● Some notable application domain of
software agent (Wooldridge, 2002):
– Agents for workflow and BPM
– Agents for distributed sensing
– Agents for information retrieval and management
– Agents for e-commerce
– Agents for human-computer interfaces
– Agents for virtual environments
– Agents for social simulation
– Agents for industrial systems management
– Agents for spacecraft control
19. Agenda 4: Organizations
Related to Agent
● FIPA (http://www.fipa.org)
– FIPA (The Foundation for Intelligent
Physical Agent) is an IEEE Computer
Society standards organization that
promotes agent-based technology and
the interoperability of its standards with
other technologies.
20. Organizations Related to Agent
● European Software-Agent Research
Center
– The European Software-Agent Research
Center is an organization of software
agent research community in Europe.
People may join for free by e-mail the
webmaster.
– http://www.software-agent.eu/
21. Organizations Related to Agent
● AgentLink (http://www.agentlink.org)
● AgentLink is Europe's IST-funded Coordination
Action for agent-based computing. As such,
AgentLink coordinates research and
development activities in the area of agent-
based computer systems on the behalf of the
European Commission. AgentLink supports a
range of activities aimed at raising the profile,
quality, and industrial relevance of agent
systems research and development in Europe,
and promoting awareness and adoption of agent
technologies.
22. Organizations Related to Agent
● The World Wide Web Consortium (
http://www.w3.org)
– The World Wide Web Consortium (W3C)
is an international community that
develops standards to ensure the long-
term growth of the Web. The W3C
mission is to lead the World Wide Web
to its full potential by developing
protocols and guidelines that ensure
the long-term growth of the Web.
23. Agenda 5: Agent Development
Kit
● ABLE (Agent Building and Learning
Environment) -
http://www.alphaworks.ibm.com/tech/a
ble
– ABLE () is Java framework, component
library, and productivity tool kit for
building intelligent agents using
machine learning and reasoning.
Although no formal announcement, last
update was July 19, 2005, which is the
sign of unmaintained software.
24. Agent Development Kit
● Cougaar (http://www.cougaar.org)
– Cougaar is a Java-based architecture for the
construction of highly scalable distributed agent-
based applications. Cougaar includes an advanced
core architecture and a variety of of components
that simplify the development, visualization, and
management of complex distributed applications.
The Cougaar architecture includes components to
support agent-to-agent messaging, naming,
mobility, blackboards, external UIs, and additional
(pluggable) capabilities. Developer write
components, also called “plugins”, which are loaded
into agents to define their behavior. The Cougaar
Component Model allows the developer to configure
Cougaar to match both their domain and system
requirements / constraints.
25. Agent Development Kit
● FAMOJA (Framework for Agent-based
MOdelling with JAva) is software
framework consists of a collection of
Java classes which aid in the rapid
prototyping of agent-based model.
● http://www.usf.uos.de/projects/famoja/
● Features:
– A graphical user interface where models can easily be
run, examined, modified and rerun.
– Ready to use Agents for displaying data in charts
– Agents and Viewers for visualizing models where
Agents are situated in a grid environment
26. Agent Development Kita
● Janus (http://www.janus-project.org/Home) is
an enterprise-ready open-source multi-agent
platform fully implemented in Java 1.6. Janus
enables developers to quickly create web,
enterprise and desktop multiagent-based
applications. It provides a comprehensive set
of features to develop, run, display and
monitor multiagent-based applications.
Janus-based applications can be distributed
across a network.
27. Agent Development Kit
● Jason (http://jason.sourceforge.net/) is
an interpreter for an extended version
of AgentSpeak. It implements the
operational semantics of that language,
and provides a platform for the
development of multi-agent systems,
with many user-customisable features.
Jason is available Open Source, and is
distributed under GNU LGPL
28. Agent Development Kita
● JADE (Java Agent DEvelopment Framework -
http://jade.tilab.com/) is a software Framework fully
implemented in Java language. It simplifies the
implementation of multi-agent systems through a middle-
ware that complies with the FIPA specifications and
through a set of graphical tools that supports the
debugging and deployment phases. The agent platform
can be distributed across machines (which not even need
to share the same OS) and the configuration can be
controlled via a remote GUI. The configuration can be
even changed at run-time by moving agents from one
machine to another one, as and when required. JADE is
completely implemented in Java language and the
minimal system requirement is the version 1.4 of JAVA
(the run time environment or the JDK).
29. Agent Development Kita
● JIAC (Java-based Intelligent Agent
Componentware) is a Java-based agent
architecture and framework that eases
the development and the operation of
large-scale, distributed applications and
services. This library consists of
already-prepared services,
components, and agents which can be
integrated into an application in order
to perform standard tasks.
30. Agent Development Kit
● MadKit (http://www,madkit.net)
● MadKit is an open source modular and
scalable multiagent platform written in
Java and built upon the AGR
(Agent/Group/Role) organizational
model. MadKit agents play roles in
groups and thus create artificial
societies.
31. Agent Development Kit
● Mobile-C (http://www.mobilec.org/) is an IEEE FIPA
(Foundation for Intelligent Physical Agents) standard
compliant multi-agent platform for supporting C/C++
mobile agents in networked intelligent mechatronic
and embedded systems. Although it is a general-
purpose multi-agent platform, Mobile-C is specifically
designed for real-time and resource constrained
applications with interface to hardware. Mobile
agents are software components that are able to
move between different execution environments.
Mobile agents in a multi-agent system communicate
and work collaboratively with other agents to
achieve a global goal. It allows a mechatronic or
embedded system to adapt to a dynamically
changing environment.
32. Agent Development Kita
● KATO is PHP and Java-based agent
development kit intended towards the
development of personal assistant. It is
an open source project and available at
http://kato.sourceforge.net/
33. Agent Development Kita
● eXAT is an Erlang-based agent development kit. It is
intended to create MAS (Multi-Agent System).
According to the website, eXAT offering a multi-
agent programming platform composed of a set
modules able to provide the programmer with the
possibility of developing (with the same
programming language) agent behavior, by means
of definition of FSMs, agent intelligence, through the
provided expert system engine, and agent
collaboration.
● eXAT is available at
http://www.diit.unict.it/users/csanto/exat/index.html
34. Agent Development Kit
● Soar (http://sitemaker.umich.edu/soar/home) is a general
cognitive architecture for developing systems that exhibit
intelligent behavior. Soar is FOSS available under BSD
license. The intention to create Soar was to enable the
Soar architecture to:
– work on the full range of tasks expected of an
intelligent agent, from highly routine to extremely
difficult, open-ended problems
– represent and use appropriate forms of knowledge,
such as procedural, declarative, episodic, and
possibly iconic
– employ the full range of problem solving methods
– interact with the outside world, and
– learn about all aspects of the tasks and its
performance on them.
35. Agent Development Kit
● SPADE (Smart Python multi-Agent
Development Environment -
http://code.google.com/p/spade2/)
● An open source project which its aim is to
build a multiagent and organization
platform using Python, based on XMPP
technology.
36. Agent Development Kit
● Swarm (http://www.swarm.org/index.php/Main_Page)
● Swarm is a software package for multi-agent simulation of
complex systems, originally developed at the Santa Fe
Institute. Swarm is intended to be a useful tool for
researchers in the study of agent based models. Swarm
software comprises a set of code libraries which enable
simulations of agent based models to be written in the
Objective-C or Java computer languages. These libraries
will work on a very wide range of computer platforms. The
basic architecture of Swarm is the simulation of
collections of concurrently interacting agents: with this
architecture, we can implement a large variety of agent
based models. The Swarm software is available to the
general public under GNU licensing terms. Swarm is
experimental software, which means that it is complete
enough to be useful but will always be under
development.
37. Finish. Thank you for your kind
attention.
Question(s)? - I hope no.